package modele;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Timer;

import vues.IHM;

public class ThreadBot extends Thread{

	private Timer tr;
	private Bot bot;
	
	public ThreadBot(final Bot bot, final IHM ihm){
		this.bot = bot;
        this.tr = new Timer(1000, new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				final int[] distanceAparcourir= bot.getDistanceAParcourir();
				System.out.println(bot.getDistanceAParcourir()[0]+" / "+ bot.getDistanceAParcourir()[1]+" | "+bot.getCaseCourante().getX()+", "+bot.getCaseCourante().getY());
					if(distanceAparcourir[0]<0){
						distanceAparcourir[0]+=1;
						bot.setOrientation(Orientation.EST);
						bot.getCaseCourante().setX(bot.getCaseCourante().getX()+1);
						ihm.refresh();
					}else if(distanceAparcourir[0]>0){
						distanceAparcourir[0]-=1;
						bot.getCaseCourante().setX(bot.getCaseCourante().getX()-1);
						bot.setOrientation(Orientation.OUEST);
						ihm.refresh();
					}else if(distanceAparcourir[1]<-1){
						distanceAparcourir[1]+=1;
						bot.getCaseCourante().setY(bot.getCaseCourante().getY()+1);
						bot.setOrientation(Orientation.SUD);
						ihm.refresh();
					}else if(distanceAparcourir[1]>1 ){
						distanceAparcourir[1]-=1;
						bot.getCaseCourante().setY(bot.getCaseCourante().getY()-1);
						bot.setOrientation(Orientation.NORD);
						ihm.refresh();
					}else{
						arreter();
						bot.setEtat(EtatBot.EXTINCTION);
					}
				}
          });
	}
	
	public void run(){
		this.tr.start();
	}
	
	public void arreter(){
		tr.stop();
		this.interrupt();
	}
}